CC = g++
IDIR = include
CFLAGS = -I$(IDIR)
LINKS = -lglfw -lGL -lX11 -lpthread -lXrandr -lXi -ldl

# $@ 表示目标
# $^ 表示所有依赖
bin/main: obj/main.o obj/glad.o obj/scene.o obj/shader.o obj/buffer.o obj/texture.o
	mkdir -p bin
	$(CC) $(LINKS) -o $@ $^

# $< 表示第一项依赖
obj/glad.o: src/glad.c
	mkdir -p obj
	$(CC) $(CFLAGS) -c -o $@ $<

obj/main.o: src/main.cpp include/my.h
	mkdir -p obj
	$(CC) $(CFLAGS) -c -o $@ $<

obj/scene.o: src/scene.cpp include/my.h include/transform.h
	mkdir -p obj
	$(CC) $(CFLAGS) -c -o $@ $<

obj/shader.o: src/shader.cpp include/shader.h
	mkdir -p obj
	$(CC) $(CFLAGS) -c -o $@ $<

obj/buffer.o: src/buffer.cpp include/buffer.h
	mkdir -p obj
	$(CC) $(CFLAGS) -c -o $@ $<

obj/texture.o: src/texture.cpp include/texture.h
	mkdir -p obj
	$(CC) $(CFLAGS) -c -o $@ $<
